/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jdemonbd.DAO.Sqlite;

/**
 *
 * @author kakashi
 */
import java.sql.*;
import javax.swing.JOptionPane;
import jdemonbd.bean.Usuario;

public class daoUsuario extends daoSQLite{

    
    public daoUsuario()
    {
        super("database_generador");
    }

    public Usuario getUsuario(String id) throws SQLException
    {
        Usuario tmp = new Usuario();
        //this.conectar();
        ResultSet rs = this.consultar("select * from usuario where idUsuario="+ id +";");
        
        while(rs.next())
        {
            tmp.setIdUsuario(rs.getString("idUsuario"));
            tmp.setNombre(rs.getString("nombre"));
            tmp.setUsuario(rs.getString("usuario"));
            tmp.setPassword(rs.getString("password"));
            tmp.setFecha_creacion(rs.getString("fecha_creacion"));
            tmp.setTipo(rs.getString("tipo"));
        }
        this.cerrar();
        return tmp;
    }

    public Usuario[] getUsuarios() throws SQLException
    {
        Usuario tmp[];// = new Usuario();
        this.conectar();
        
        //ResultSetMetaData rsm = rs.getMetaData();
        int cant = this.seleccionarContar("USUARIO");
        //int cant = this.seleccionarContar("USUARIO","idUsuario=1");//rsm.getColumnCount();
        tmp = new Usuario[cant];
        ResultSet rs = this.seleccionar("USUARIO");

        JOptionPane.showMessageDialog(null, ""+ cant);
        int i = 0;
        while(rs.next())
        {
            tmp[i] = new Usuario();
            tmp[i].setIdUsuario(rs.getString("idUsuario"));
            tmp[i].setNombre(rs.getString("nombre"));
            tmp[i].setUsuario(rs.getString("usuario"));
            tmp[i].setPassword(rs.getString("password"));
            tmp[i].setFecha_creacion(rs.getString("fecha_creacion"));
            tmp[i].setTipo(rs.getString("tipo"));
            i++;
        }
        this.cerrar();
        return tmp;
    }
    public boolean esValido(Usuario user) throws SQLException
    {
        boolean valido = false;
        this.conectar();
        int cont = 0;
        //String sql = "select * from usuario where usuario='"+ user.getUsuario() +"' and password='" + user.getPassword()+"';";
        String condicion = "usuario='"+ user.getUsuario() +"' and password='" + user.getPassword()+"';";
        //JOptionPane.showMessageDialog(null, sql);
        ResultSet rs = this.seleccionar("usuario",condicion );
        while(rs.next())
        {
            cont++;
        }
        if(cont==1)
        {
            valido = true;
        }
        return valido;
    }

    /////////////////
    public Usuario validar(Usuario user) throws SQLException
    {
        Usuario tmp = new Usuario();
        this.conectar();
        int cont = 0;
        //String sql = "select * from usuario where usuario='"+ user.getUsuario() +"' and password='" + user.getPassword()+"';";
        String condicion = "usuario='"+ user.getUsuario() +"' and password='" + user.getPassword()+"';";
        //JOptionPane.showMessageDialog(null, sql);
        ResultSet rs = this.seleccionar("usuario",condicion );
        while(rs.next())
        {
            cont++;
            tmp.setIdUsuario(rs.getString("idUsuario"));
            tmp.setNombre(rs.getString("nombre"));
            tmp.setUsuario(rs.getString("usuario"));
            tmp.setPassword(rs.getString("password"));
            tmp.setFecha_creacion(rs.getString("fecha_creacion"));
            tmp.setTipo(rs.getString("tipo"));
        }
        if(cont!=1)
        {
            tmp = null;
        }
        return tmp;
    }
    /////////////////
    public void nuevoUsuario(Usuario tmp) throws SQLException
    {
        PreparedStatement prep = this.getConn().prepareStatement( "insert into USUARIO values (?,?,?,?,?, ?);");
        prep.setString(2, tmp.getNombre());
        prep.setString(3, tmp.getUsuario());
        prep.setString(4, tmp.getPassword());
        prep.setString(5, tmp.getFecha_creacion());
        prep.setString(6, tmp.getTipo());
        prep.addBatch();
        
        prep.executeBatch();
        this.cerrar();
    }


    

}
